1 שאלון: תש"ע

Σχετικά έγγραφα
מבני נתונים מדעי המחשב שאלון: מועד ב' תשע"ו מדעי המחשב פתרון בחינת הבגרות. Java שאלה 1. blog.csit.org.

מדעי המחשב. פרק ראשון :Java. blog.csit.org.il מדעי המחשב שאלון: עיצוב תכנה 1 מועד ב' תשע"ו פתרון בחינת הבגרות שאלה 1 פעולות עזר:

1 שאלון: תשס"ט { int listsize = size(list); int n = listsize / 3; if (listsize == 0 listsize % 3!

מדעי המחשב ב' פתרון בחינת הבגרות. One n 4.0. One n T 4 3 T 8 4 T 16 5 T 32 6 F

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

חורף תש''ע פתרון בחינה סופית מועד א'

תרגול פעולות מומצאות 3

2 שאלות )בחירה מ - 4( סה"כ 25 נקודות לכל שאלה 22 נקודות

1 שאלו : Together double x 5.0 int from 2 int to 6 One first Two second One n 5.0 Queue<One>q One n 4.0 One n 8.0 One n 16.

{ : Halts on every input}

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, א"ב (.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

סדרות - תרגילים הכנה לבגרות 5 יח"ל

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

3-9 - a < x < a, a < x < a

gcd 24,15 = 3 3 =

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

max(sod1,sod2) 5 1 F (9321,345) סוד 1 1 max ( 1, 2 ) F (345,296) סוד 1 0 max ( 0, 2 ) F (296,7) סוד 1 2 max ( 2, 1 ) 2

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

תרגיל 13 משפטי רול ולגראנז הערות

ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

תרגול מס' 6 פתרון מערכת משוואות ליניארית

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

מודלים חישוביים פתרון תרגיל 5

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

אוטומטים- תרגול 8 שפות חסרות הקשר

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

תרגול 8: מטלאב לולאות

םינותנ ינבמ 3 ליגרתמ תולאשל המוד תולאש טסל תונורתפ תולאשה

שאלה 1 V AB פתרון AB 30 R3 20 R

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

ל הזכויות שמורות לדפנה וסטרייך

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

אוטומטים- תרגול 10: מכונות טיורינג.

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

התפלגות χ: Analyze. Non parametric test

Logic and Set Theory for Comp. Sci.

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

סיכום- בעיות מינימוםמקסימום - שאלון 806

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

אלגברה ליניארית (1) - תרגיל 6

השאלות..h(k) = k mod m

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

מודלים חישוביים תרגולמס 7

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

אלגברה ליניארית 1 א' פתרון 2

מודלים חישוביים תרגולמס 5

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

אלגברה לינארית מטריצות מטריצות הפיכות

גבול ורציפות של פונקציה סקלרית שאלות נוספות

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

. {e M: x e} מתקיים = 1 x X Y

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

אלגברה לינארית (1) - פתרון תרגיל 11

קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים

מתמטיקה בדידה תרגול מס' 13

הוראות לנבחן בפרק זה ארבע שאלות, פרק ראשון ומהן יש לענות על שתיים. לפי ההוראות בקבוצת השאלות במסלול זה.

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל

תרגיל 7 פונקציות טריגונומטריות הערות

(ספר לימוד שאלון )

שם התלמיד/ה הכיתה שם בית הספר. Page 1 of 18

תשובות מלאות לבחינת הבגרות במתמטיקה מועד קיץ תש"ע מועד ב', מיום 14/7/2010 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן.

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

Regular Expressions (RE)

רשימת בעיות בסיבוכיות

רשימת משפטים והגדרות

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

co ארזים 3 במרץ 2016

( k) ( ) = ( ) ( ) ( ) ( ) A Ω P( B) P A B P A P B תכונות: A ו- B ב"ת, אזי: A, B ב "ת. בינומי: (ההסתברות לk הצלחות מתוך n ניסויים) n.

בעיות חשיבות: :(State transition system) STS מושגים: רדוקציה: f אינה חשיבה g אינה חשיבה; בבעיות הכרעה: f לא כריעה g לא כריעה.

logn) = nlog. log(2n

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

אוטומטים ושפות פורמליות תרגולים

נספח לפרק 10 דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבאה : Input X. q 0 q 1. output D FF-0 D FF-1. clk

TECHNION Israel Institute of Technology, Faculty of Mechanical Engineering מבוא לבקרה (034040) גליון תרגילי בית מס 5 ציור 1: דיאגרמת הבלוקים

מבחן במודלים חישוביים + פתרון מוצע

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

מודלים חישוביים כריעות R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציה בעיית ההכרעה רדוקציית מיפוי.

תורת הקבוצות ניר אדר ניר אדר.

החשמלי השדה הקדמה: (אדום) הוא גוף הטעון במטען q, כאשר גוף B, נכנס אל תוך התחום בו השדה משפיע, השדה מפעיל עליו כוח.

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

עבודת קיץ למואץ העולים לכיתה י' סדרות:

מתמטיקה בדידה תרגול מס' 5

Transcript:

1 ב' פתרון בחינת הבגרות פרק א - :1 Ï פתרון בשפת :Jv מציאת הזוג הראשון במחסנית 1 הגדול מהזוג המקסימאלי במחסנית 2. אם הוא גדול מהזוג בעל הסכום המקסימאלי, הוא בהכרח גדול מסכום כל הזוגות הסמוכים במחסנית 2. יעילות הפתרון היא O(n) --- פעולה המחזירה את סכום זוג האיברים הסמוכים ---// --- הגדול ביותר במחסנית ---// --- הנחה : במחסנית יש לפחות שני איברים ---// pulic sttic int mxsumcuple(stck<integer> st2) int x = st2.pop(); int y = st2.pop(); int sum = x + y; while (!st2.isempty()) x = y; y = st2.pop(); if (x + y > sum) sum = x + y; return sum; --- פעולה המחזירה את סכום זוג האיברים הסמוכים הראשון ---// --- הגדול ביותר במחסנית 1 הגדול מסכום כל זוגות ---// --- המספרים הסמוכים במחסנית השנייה ---// --- הנחה : בכל מחסנית יש לפחות 2 איברים ---// pulic sttic int mxcuplest1 (Stck<Integer> st1, Stck<Integer> st2) int x = st1.pop(); int y = st1.pop(); int sum = mxsumcupple(st2); while (!st1.isempty() && (x+y) < sum ) x = y; y = st1.pop(); if (st1.isempty()) return 0; return x+y;

2 בדיקת הסכום של כל זוג מספרים ממחסנית 1 מול כל זוגות המספרים במחסנית 2, עד אשר יימצא הזוג הראשון במחסנית 1 הגדול מכל הזוגות שבמחסנית 2. יעילותו של פתרון זה היא ) 2 O(n --- פעולה המחזירה את סכום זוג האיברים הסמוכים הראשון ---// --- הגדול ביותר במחסנית 1 הגדול מסכום כל זוגות ---// --- המספרים הסמוכים במחסנית השנייה ---// --- הנחה : בכל מחסנית יש לפחות 2 איברים ---// pulic sttic int mxcuplest1 (Stck<Integer> st1, Stck<Integer> st2) Stck<Integer> sttemp = new Stck<Integer>(); int x1 = st1.pop(); int y1 = st1.pop(); int sum1 = x1 + y1; oolen igger = true; while (!st1.isempty() && igger) int x2 = st2.pop(); int y2 = st2.pop(); sttemp.push(x2); sttemp.push(y2); int sum2 = x2 + y2; if (sum1 <= sum2) igger = flse; while (!st2.isempty() && igger) x2 = y2; y2 = st2.pop(); sttemp.push(y2); sum2 = x2 + y2; if (sum1 <= sum2) igger = flse; if (igger) return sum1; while (! sttemp.isempty()) st2.push(sttemp.pop()); igger = true; x1 = y1; y1 = st1.pop(); sum1 = x1 + y1; return 0;

3 - פתרון בשפת #C נכתב ע"י ראמי גבאלי: מציאת הזוג הראשון במחסנית 1 הגדול מהזוג המקסימאלי במחסנית 2. אם הוא גדול מהזוג בעל הסכום המקסימאלי, הוא בהכרח גדול מסכום כל הזוגות הסמוכים במחסנית 2. יעילות הפתרון היא O(n) פעולה מחזירה את זוג האיברים הסמוכים הגדול ביותר // pulic sttic int MxTwo(Stck<int> s) Stck<int> s2 = new Stck<int>(); int mx = 0; int x, y; while (!s.isempty()) x = s.pop(); s2.push(x); if (!s.isempty()) y = s.top(); if (x + y > mx) mx = x + y; while (!s2.isempty()) s.push(s2.pop()); return mx; פעולה מחזירה את סכום של זוג האיברים הסמוכים // pulic sttic int SumB(Stck<int> st1,stck<int> st2) int x, y, m; while (!st1.isempty()) x = st1.pop(); if (!st1.isempty()) y = st1.top(); m=mxtwo(st2); if (x + y > m) return x + y; return 0;

4 פתרון רקורסיבי: נכתב ע"י ראמי ג'באלי בוליאני ומשתנה מספרים שני,מחסנית המקבלת פעולה */ זוג מכל גדול המספרים זוג סכום אם "אמת" ומחזירה * אחרת "שקר"-ו,אחרת במחסנית סמוכים איברים * */ pulic sttic ool IsBig2(Stck<int> s, int x, int y, ool flg2) ool flg; if (s.isempty() && flg2 == flse) flg = true; else if (s.isempty() && flg2) flg = flse; else int = s.pop(); if (!s.isempty()) int = s.top(); if ( + >= x + y) flg = flse; flg2 = true; flg = IsBig2(s, x, y, flg2); s.push(); return flg; הסמוכים האיברים זוג הסכום את מחזירה פעולה --- // pulic sttic int Sum2(Stck<int> s1, Stck<int> s2) if (s1.isempty()) return 0; else int x = s1.pop(); if (!s1.isempty()) int y = s1.top(); if (IsBig2(s2, x, y, flse)) return x + y; return Sum2(s1, s2);

5 נכתב ע"י ראמי ג'באלי: בדיקת הסכום של כל זוג מספרים ממחסנית 1 מול כל זוגות המספרים במחסנית 2, עד אשר יימצא הזוג הראשון במחסנית 1 הגדול מכל הזוגות שבמחסנית 2. יעילותו של פתרון זה היא ) 2 O(n pulic sttic ool IsBig(Stck<int> s, int x, int y) Stck<int> s2 = new Stck<int>(); ool flg = true; int, ; while (!s.isempty()) = s.pop(); if (!s.isempty()) = s.top(); if (x + y <= + ) flg = flse; s2.push(); while (!s2.isempty()) s.push(s2.pop()); return flg; --- פעולה מחזירה את סכום של זוג האיברים הסמוכים ---// pulic sttic int Sum(Stck<int> st1, Stck<int> st2) int x, y; while (!st1.isempty()) x = st1.pop(); if (!st1.isempty()) y = st1.top(); if (IsBig(st2, x, y) == true) return x + y; return 0;

6 :2 Ï פתרון בשפת :Jv --- ט.כניסה: רשימת מספרים ---// --- ט.יציאה: מוחזרת רשימת הטווחים ---// pulic sttic List<RngeNode> creterngenode (List<Integer> sourcelist) int from, to; List<RngeNode>rngeList = new List<RngeNode>(); Node<RngeNode> pos2 = null; Node<Integer>pos1 = sourcelist.getfirst(); while (pos1!= null) from = pos1.getinfo(); to = from; pos1 = pos1.getnext(); while (pos1!= null && pos1.getinfo()-1 == to) to = pos1.getinfo(); pos1 = pos1.getnext(); RngeNode rn = new RngeNode(from, to); pos2 = rngelist.insert(pos2, rn); return rngelist;

7 - פתרון בשפת #C נכתב ע"י ראמי גבאלי: הטווחים רשימת מחזירה פעולה// pulic sttic List<RngeNode> CreteRngeList (List<int> sourcelist) Node<int> p = sourcelist.getfirst(); List<RngeNode> list=new List<RngeNode>(); Node<RngeNode> q = list.getfirst(); int x, y=0, z; z = p.getinfo(); אם הרשימה מורכבת מאיבר אחד // null) if (p.getnext() == q = list.insert(q, new RngeNode(z,z)); else while (p.getnext()!= null) x = p.getinfo(); y = p.getnext().getinfo(); if (y - x == 1) p = p.getnext(); else q = list.insert(q, new RngeNode(z, x)); z = y; p = p.getnext(); q = list.insert(q, new RngeNode(z, y)); return list;

8 פתרון בשפת #C נכתב ע"י דורון כהן, תלמיד בתיכון מכבים-רעות: pulic sttic List<RngeNode> CreteRngeList (List<int> sourcelist) - הפעולה מקבלת רשימה של מספרים שלמים ומחזירה את רשימת הטווחים שלה. // הנחה : הרשימה מורכבת לפחות מאיבר אחד. // הסבר הפתרון : בפתרון יש שימוש בשני מספרים הראשון // הוא תחילת כל רצף (בי) והאחרון הוא סוף כל רצף(אף).לרצף הראשון // נכניס את ערכה של החוליה הראשונה למשתנה הראשון. לאחר מכן נעבור // בלולאה על הרשימה עד האיבר האחד לפני האחרון וכאשר ערך החוליה // הבאה הוא לא המספר העוקב של ערך החוליה הנוכחית נכניס למשתנה // השני את ערך החוליה הנוכחית. לאחר מכן, נכניס לרשימת הטווחים את // הרצף הנוכחי ונשנה את המשתנה הראשון להיות המספר הראשון ברצף הבא // בסוף יש טיפול מיוחד בחוליה האחרונה אנו מכניסים את הרצף האחרון // שמתחיל מהמשתנה הראשון וסופו הינו ערכו של החוליה האחרונה // List<RngeNode> L = new List<RngeNode>(); Node<int> pos1 = sourcelist.getfirst(); Node<RngeNode> pos2 = null; int = pos1.getinfo(), f; while (pos1.getnext()!= null) if (pos1.getinfo() + 1!= pos1.getnext().getinfo()) f = pos1.getinfo(); pos2 = L.Insert(pos2, new RngeNode(, f)); = pos1.getnext().getinfo(); pos1 = pos1.getnext(); L.Insert(pos2, new RngeNode(, pos1.getinfo())); return L;

9 :3 Ï - פתרון בשפת #C נכתב ע"י דיתה אוהב-ציון: clss Messge משתנה סטטי - מונה הודעות ) מיספור אוטומטי ( // 0; = CountMessge privte sttic int privte int Id; מספר סידורי של ההודעה // privte string Nme; שם השולח // privte int Size; גודל ההודעה // clss MessgeBox privte string Owner; שם בעל התיבה // privte const int MxSize = 100; גודל מקסימלי // privte List<Messge> Box; רשימת הודעות פעילות // privte List<Messge> Bin; רשימת הודעות בסל האשפה // הנחות: גודל התיבה מוגדר כקבוע - זהה לכל התיבות. בתיבת ההודעות הפעילות, ההודעות ממוינות בסדר יורד. ההודעה החדשה ביותר - בסל האשפה ההודעות ממוינות בסדר יורד. ראשונה. א. ב. pulic ool AddMessge(Messge m) int freesise= MxSize - (GetActiveSize() + GetBinSize()); אם יש מקום פנוי בתיבה // if (freesise >= m.getsize()) Box.Insert(null, m); return true; ג. אם המקום הפנוי+ גודל ההודעות בסל האשפה גדול או שווה לגודל ההודעה החדשה // if (GetBinSize()+ freesize >= m.getsize()) מחיקת הודעות מסל האשפה עד שיתקבל המקום הפנוי הנדרש// while (freesise < m.getsize()) freesise += RemoveFromBin(); Box.Insert(null, m); return true; return flse;

10 ד. (1) גודל התיבה הוגדר ע"י חבר מחלקה קבוע privte const int MxSize = 100; כל הגולשים מקבלים תיבה בגודל הקבוע. אין הבדל בין הגולשים ואין צורך להקצות לכל גולש משתנה שישמור את גודל התיבה שלו. מאחר ויש דרישה להקצות תיבות בגודל משתנה יש privte int MxSize; לשנות אותו לחבר מחלקה רגיל כך שניתן יהיה לשנות את ערכו לפי הדרישה והוא יהיה שונה לכל מופע של המחלקה - לכל תיבה יהיה גודל שונה. (השינוי בבנאי המחלקה שבו נוסיף שורה ;100 =,this.mxsize לאיתחול גודל התיבה. ( אין צורך לשנות את הפעולה מסעיף ג. השימוש בשם המשתנה אינו מתשנה בביצוע הפעולה כאשר הוא הופך מקבוע למשתנה מחלקה רגיל. (2)

11 qu 4 3 1 8 9 :4 Ï פתרון בשפת :Jv א. (1) טבלת מעקב ל- Sod1 qu st משפט זימון sod1(qu,st) qu x לא ריק? T 4 sod1 ( [3, 1, 8, 9], [] ) [9, 8, 1, 3, 4] [4, 3, 1, 8, 9] T 3 sod1 ( [1, 8, 9], [] ) [9, 8, 1, 3] [3, 1, 8, 9] T 1 sod1 ( [8, 9], [] ) [9, 8, 1] [1, 8, 9] T 8 sod1 ( [9], [] ) [9, 8] [8, 9] T 9 sod1 ( [], [] ) [9] [9] F qu טבלת מעקב ל- Sod2 9 8 1 3 4 (2) st 4 3 1 8 9 qu לא ריק? x sod2(qu,st) משפט זימון y qu st T 9 sod2([8, 1, 3, 4],[4, 3, 1, 8, 9]) 9 [8, 6, 2, 16, 18] [ ] T 8 sod2([1, 3, 4],[4, 3, 1, 8, 9]) 8 [8, 6, 2, 16] [9] T 1 sod2([3, 4],[4, 3, 1, 8, 9]) 1 [8, 6, 2] [8, 9] T 3 sod2([4],[4, 3, 1, 8, 9]) 3 [8, 6] [1, 8, 9] T 4 sod2([],[4, 3, 1, 8, 9]) 4 [8] [3, 1, 8, 9] F qu 8 6 2 16 18 qu אחרי ביצוע קטע הקוד: ב. ג. sod1 הופכת את איברי התור (מהסוף להתחלה), ומעתיקה את איברי התור למחסנית, כך שהאיבר שהיה בראש התור יהיה בתחתית המחסנית. קטע הקוד מכפיל את כל איברי התור פי 2.

12 פרק ב' מערכות מחשב ואסמבלר :5 ÏÈ :6 ÏÈ :7 ÏÈ :8 Ï

13 פרק ב' מבוא לחקר ביצועים :9 Ï :10 Ï :11 Ï :12 Ï

14 פרק ב' מודלים חישוביים הפתרון לפרק זה נכתב ע"י רחל לודמר. אינה שפה רגולרית. יש תלות מניה בין אורכי הרצפים של ו-. :13 ÏÈ L 1 - השפה L 2 -השפה היא רגולרית, נבנה עבורה אוטומט סופי דטרמיניסטי: היא שפה רגולרית, נבנה עבורה אוטומט סופי דטרמיניסטי: L 3 - השפה L4 L5 n n 1 = n 1, n%2 = 1 = L1 R( L4 ) ב. נתון ש- L 5 = n = n n 1 n+ k 2 k 1 k k n, k 1, k%2 = 1 n, k 1, k%2 = 1 : L5 הגדרת השפה = n t k t = n + k 2, n, k 1, k%2 = 1

15 :14 Ï א. המילה הקצרה ביותר היא 000$$. ב. האוטומט שמקבל את השפה L: 0 0 0 $ $ $ 0 0 0 0 q 0 0 1 0 0 1 0 q1 q2 q4 q5 q6 q7 המילה 001001 מתקבלת. מסלול חישוב : :15 Ï (i) א..1 q 0 1 0 1 0 0 q1 q4 q5 q6 q7 המילה 01010 מתקבלת. מסלול חישוב: (ii) (iii) המילה 0101 לא מתקבלת. (מילה מתקבלת באורך 4 חייבת להתחיל ב- ( 1 האורך המינימאלי של מילה מתקבלת הוא. 4 לדוגמא 1000. האורך המקסימאלי של מילה מתקבלת הוא. 6 לדוגמא 011000. השפה המוגדרת ע"י האוטומט היא: כל המילים מעל 0,1 שאורכן בין 4 ל- 6 (כולל) והתו הרביעי מהסוף הוא 1. ניסוח אחר : כל המילים המקיימות: L = w1 1 w2 w1, w2 0,1,0 w1 2, w2 = 3.2.3.4 ב. האוטומט המקבל את השפה L:, q0 q1 q2 q3 q5 q4

16 :16 Ï א. השלמת מכונת טיורינג עבור הפונקציה min(m,n) f(m,n)= כאשר m,n>0, כתובים בשפה האונרית וסימן # מפריד בניהם. תוצאת המכונה תיכתב בין שני $. ימין, / שמאל, / שמאל, # / # שמאל, 1 1 / א שמאל, / 1 ימין, /# # ב ימין /$, # ג שמאל, $ / Δ שמאל 1, / ימין 1, / ימין /$, Δ ב. תהליך החישוב של המכונה בעבור הקלט 1=m,1=n 1 # 1 Δ q 0 # 1 Δ q 1 # 1 Δ q 2 # Δ q 3 # Δ q 3 # Δ q0 $ Δ q 4 $ 1 Δ Δ q 4 $ 1 $ Δ q 5

17 Jv פרק ב' תכנות מונחה עצמים Animl ZooZoo :17 ÏÈ Test א. Mrine Reptile GoldFish Snke Crocodile Animl niml 0 1 2 3 count 0 1 2 3 4 ב. Snke Crocodile GoldFish Crocodile nme: snki len: 50 nme: Crocki1 len: 78 nme: goldi depth: 0.2 nme: Crocki3 len: 103 snki is hungry! Crwling: Ymmi Teeee **** Crocki1 is hungry! Crwling: Ymmi Finish eting Whmm **** goldi is hungry! Swimming Bloop loop **** Crocki3 is hungry! Crwling: Ymmi Finish eting Whmm **** פלט התכנית:

18 :18 ÏÈ כן. א. הינן חלק מהפעלות של,WhtIn1 WhtClss ולכן כל הפעולות של WhtClss יורשת מ- WhtIn1 ובכך היא עונה על התחייבותה לממש את הפעולה בממשק. כלומר - WhtIn1 מתפקדת כ- WhtOp ב. הפעולה לא תקינה. המחלקה יורשת מ- WhtClss ולכן עליה לזמן את הפעולה הבונה של מחלקת העל. התיקון : pulic WhtIn1(int numer, int num) super(numer); this.num = num; ג. הפעולה לא תקינה. הרשאת הגישה לתכונה numer היא,privte ולכן היא מוסתרת מהמחלקה. התיקון - זימון הפעולה :getnumer() pulic int clculte2() return (int)((this.getnumer() +this.num)/2); ד. (1) אי אפשר להסתמך על הפעולה בונה ברירת מחדל. מרגע שנוצרו פעולות בונות באחת ממחלקות-העל של,WhtIn2 התבטלה האופציה של פעולה בונה ברירת מחדל. (אם נסיר את הפעולות הבונות של המחלקות WhtClss ו- WhtIn1 יופעל בנאי המחדל). System.out.println(oj.clculte3(1000, 100, 10)); (2) p1 p2 p3 clculte3(p1,p2,p3) 1000 100 10 21,000 + 3* 10*10*10 24,000 clculte3(p1,p2) 1000 + 2*100*100 21,000 הפלט: 24,000 clculte3(p1) 1*1000 1000 כל הפעולות מוכרות במחלקה WhtIn2 שיורשת מכל המחלקות האחרות.

19 :19 ÏÈ א. (1) (2) העיקרון של שתי פעולות בונות הוא העמסה - overloding. המהדר בוחר את הפעולה המתאימה לפי סוג ומספר הפרמטרים המועברים. ב. הפעולה tostring מגדירה מחדש (דורסת - (overriding את הפעולה שהועברה בירושה. בתוך הפעולה יש זימון של הפעולה שהועברה בירושה.(inheritnce) Stm s 0 1 2 3 4 5 ג. (1) Stm Dvr Stm Dvr Dvr x : '*' x: '*' y: 0 x : '' x: '' y: 0 x: '' y: 0 פלט הלולאה בקטע עמודה זו לא תודפס s[0]: s[1]: s[2]: s[3]: s[4]: s[5]: : 2 x = * Dvr: x = * x = Dvr: x = Dvr: x = x = (2) פולימורפיזם - מערך מסוג מחלקת העל מפנה לאובייקטים מסוג מחלקת העל ומסוג תת המחלקה (היורשת). הורשה - אובייקט מתת-מחלקה מפעיל פעולה שירש ממחלקת העל (הפעולה.(print() pulic oolen isstm1 (Stm other) return this.x == other.x ; (3) (4) pulic oolen isstm2 (Stm other) return this.equls(other);

20 :20 Ï א. מסוג :CndleKind קטע קוד לבניית עצם בשם kind1 Rose שם הדגם: מערך colors1 המכיל את בצבעים: אדום, צהוב, ירוק צבעי הדגם: 899205 מס' דגם: 2010 כמות מרבית: String[]colors1 = "red", "yellow","green"; CndleKind kind1 = new CndleKind("Rose", 899205, colors1, 2010); :Fctory ב. כותרת ותכונות המחלקה - מערך פסי הייצור - מספר מרבי של ספי ייצור - מספר פסי הייצור הקיימים בפועל (בכל התכנית מתקיים: (current < mxline prodline mxline current pulic clss Fctory privte CndleKind [] prodline; pulic sttic int mxline = 12; privte int current; הפעולה הבונה: (לא נדרש בבחינה) pulic Fctory() this.prodline = new CndleKind[mxLine]; this.current = 0;

21 ג. פעולות שיתווספו למחלקה :CndleKind --- סעיף ג ' 1 //--- --- פעולה המחזירה את צבע הנר מדגם נתון שיתחילו בייצורו ---// pulic String strtcolorproduction() --- סעיף ג ' 2 --- // --- פעולה המחזירה את כמות הנרות המרבית ---// --- שניתן לייצר מדגם הנרות הנוכחי ---// pulic int posiileproductamount() פעולה שתתווסף למחלקה : Fctory --- סעיף ג ' 3 --- // --- פעולה המחזירה את הקוד של דגם הנר שניתן לייצר ---// --- זהו הנר שנמצא בכמות הקטנה ביותר במלאי, וניתן לייצרו ---// --- אם לא ניתן לייצר את הנר, יוחזר ---// 999 pulic int getcodeminimumamounts() Fctory fty = new Fctory(); :min() ד. קטע הקוד בפעולה int code = fty.getcodeminimumamounts(); // (1) while (code!= 999) CndleKind ck = fty.getprodline(code); // (2) String colortoproduce = ck.strtcolorproduction(); // (3) int mount = ck.posiileproductamount(); // (4) ck.updte(colortoproduce, mount); code = fty.getcodeminimumamounts(); // (1)

22 פרק ב' תכנות מונחה עצמים #C הפתרון לפרק זה נכתב ע"י טובי סטפ :21 ÏÈ

23 :22 ÏÈ

24 :23 ÏÈ

25 :24 Ï